/*
  电线上的小鸟
  题目描述
    在一根电线上落有 N 只小鸟，有的小鸟头向左看，有的小鸟头向右看，且每只小鸟只能看到它视线前的那一只小鸟。
    给定 N 只小鸟头的朝向，头向左看的小鸟使用小写字母 'q' 表示，头向右看的小鸟用小写字母 'p' 表示，
    请你计算出 N 只小鸟中有多少只小鸟被 0 只小鸟看到，多少只小鸟被 1 只小鸟看到，多少只小鸟被 2 只小鸟看到。
    例如：
      N = 6，6 只小鸟头的朝向分别为 p，q，p，p，q，q。

      如图：
        有 2 只小鸟被 0 只小鸟看到（第 3 只和第 6 只）；
        有 2 只小鸟被 1 只小鸟看到（第 1 只和第 2 只）；
        有 2 只小鸟同时被 2 只小鸟看到（第 4 只和第 5 只）。
      则输出三个数字分别为 2，2，2。
  输入描述
    第一行输入一个正整数 N（3 ≤ N ≤ 1000），表示有 N 只小鸟落在电线上；
    第二行输入 N 个字符，字符只能为 'q' 和 'p'，'q' 表示小鸟头向左看，'p' 表示小鸟头向右看，字符之间以一个空格隔开.
  输出描述
    一行输出三个整数，
    分别为有几只小鸟被 0 只小鸟看到；有几只小鸟被 1 只小鸟看到；有几只小鸟被 2 只小鸟看到；整数之间以一个空格隔开。
  样例1
    输入
      6
      p q p p q q
    输出
      2 2 2
*/

#include <bits/stdc++.h>

using namespace std;

int main() {
    int n;
    char a[1010] = {};

    cin >> n;
    for (int i= 1; i <= n; i++) {
        cin >> a[i];
    }

    int l = 0, y = 0, r = 0;
    for (int i = 1; i <= n; i++) {
        int num = 0;

        if (i == 1) {
            if (a[i + 1] == 'q'){
                num++;
            }
        } else if (i == n) {
            if (a[i - 1] == 'p') {
                num++;
            }
        } else {
            if (a[i + 1] == 'q') {
                num++;
            }

            if (a[i - 1] == 'p') {
                num++;
            }
        }

        if (num == 0) {
            l++;
        } else if (num == 1) {
            y++;
        } else if (num == 2) {
            r++;
        }
    }

    cout << l << " " << y << " " << r;

    return 0;
}